package edu.gatech.oad.antlab.person;

/**
 *  A simple class for person 2
 *  returns their name and a
 *  modified string 
 *
 * @author Bob
 * @version 1.1
 */
public class Person2 {
    /** Holds the persons real name */
    private String name;
	 	/**
	 * The constructor, takes in the persons
	 * name
	 * @param pname the person's real name
	 */
	 public Person2(String pname) {
	   name = pname;
	 }
	/**
	 * This method should take the string
	 * input and return its characters in
	 * random order.
	 * given "gtg123b" it should return
	 * something like "g3tb1g2".
	 *
	 * @param input the string to be modified
	 * @return the modified string
	 */
	private String calc(String input) {

	    /*
        String toRet = "";
      boolean arr[] = new boolean[input.length()];
      for (int i=0; i<input.length(); i++) {
          arr[0] = true;
      }
        for (int i=0; i<input.length(); i++) {
          int ran = Math.random(input.length());
          while (arr[ran] == false) {
              ran = Math.random(intput.length());
          }
          arr[ran] = false;
          toRet += input.charAt(ran);
      }
      return toRet;
        */
        
        
        
      boolean[] used = new boolean[input.length()];
      for (int i=0; i<input.length(); i++) {
          used[i] = false;
      }
      
      
      String ret = "";
      while (input.length() > ret.length())
      {
          Long l = Math.round(Math.random() * (input.length() - 1));
          int index = l.intValue();
          if (used[index] == false)
          {
              ret += input.substring(index, index+1);
              used[index] = true;
          }
      }
      return ret;
	    
	}
	/**
	 * Return a string rep of this object
	 * that varies with an input string
	 *
	 * @param input the varying string
	 * @return the string representing the 
	 *         object
	 */
	public String toString(String input) {
	  return name + calc(input);
	}
}
